草庐IT

Java Generics - 类本身的子类?

全部标签

c++:通过多级继承从模板子类调用基类的模板方法

我正在寻找从通过C::A和B::A继承它的子类D调用基类A的方法。templateclassA{public:templatevoidFunc(void){std::cout::Func"classB:publicA{};templateclassC:publicA{};classD:publicB,publicC{public:D(){static_cast*>(this)->A::Func();static_cast*>(this)->A::Func();}};这按预期工作,D在初始化时使用子类的模板参数调用B::A::Func和C::A::Func。但是,当D是模板类时,这似乎不

c++ - 将函数注入(inject)子类

是否可以在C++14中做这样的事情。我有一个基类如下:#includeclassAbstractElement;classConcreteElement;classSuperConcreteElement;classB{public:voidbar(AbstractElement*){std::coutfoo();//PrintsConcreteelement}正如您在//1和//2中看到的,函数的主体完全相似。但是我不能完全将它移动到基类中,因为取决于this的静态类型。尽管如此,每次我需要添加AbstractElement的子类时,我都不想编写完全相同的代码。因此,我需要某种机制来

c++ - 从 enable_shared_from_this 返回 self 的 shared_ptr 继承的类的子类

我想知道是否有像这样的伪代码来做一些事情:classA:publicstd::enable_shared_from_this{public:std::shared_ptrgetPtr(){returnstd::static_pointer_cast(shared_from_this());}};classB:publicA{std::vectorcontainer;std::shared_ptraddChild(Achild){container.push_back(child);returngetPtr();}};classC:publicB{public:std::shared_p

c++ - 为什么我的 get<k>() 函数不能接收元组的子类?

我在网上复制了一个元组实现,大多数情况下它都能找到:templateclasstuple{};templateclasstuple:publictuple{public:tuple(Tt,Ts...ts):tuple(ts...),tail(t){}Ttail;};templatestructelem_type_holder;templatestructelem_type_holder>{typedefTtype;};templatestructelem_type_holder>{typedeftypenameelem_type_holder>::typetype;};template

列表本身

我还是Haskell的新手,正在尝试一些事情。我有一个充满毕达哥拉斯的清单。现在,我想删除所有相同的三元组。例如(6,8,10)与(3,4,5)相同。因此,我编写了一个功能,该功能检查了两个3个tuplass是否相同,如果相同,则返回True,如果不False。但是现在,我有一个三个tuplace的列表(其中包括相同的三重态),我想滤除所有相同的(3个tuplass)。我一直在stackoverflow上寻找相同的问题,但可悲的是找不到我可以使用的任何东西。我当前的代码在下面。(不要介意效率,因为我确定目前我的效率很低。)生成三元组清单:pyth::Int->[(Int,Int,Int)]py

c++ - union 是标准布局类型本身吗?

如果我有这样的标准布局类型:structsl_t{inta;};像这样的union:unionun_t{intb;doubleq;};我可以转换并使用union作为结构类型吗?也就是说,我可以假设union本身是标准布局类型并且数据在内存的开头对齐吗?un_tobj;sl_t*s=reinterpret_cast(&obj);s->a=15;assert(obj.b==15);或者我必须取union体&obj.b中变量的地址吗?请注意,我已经知道如果我将结构存储在union中,C++11标准保证我可以访问sl_t::a和un_t::b,引用9.5-1。 最佳

c++ - G++:可以将 __attribute__((__may_alias__)) 用于指向类实例而不是类定义本身的指针吗?

我正在寻找以下问题的答案:may_alias是否适合作为指向某个类Foo对象的指针的属性?还是只能在类(class)级别使用?考虑以下代码(它基于更复杂的真实示例):#includeusingnamespacestd;#definealias_hack__attribute__((__may_alias__))templateclassFoo{private:/*alias_hack*/charData[sizeof(T)];public:/*alias_hack*/T&GetT(){return*((/*alias_hack*/T*)Data);}};structBar{intBaz

c++ - 在子类中将非纯虚函数变为纯虚函数

所以,我有这个多态层次结构:ClassAIsnotabstract,nopurevirtualfunctions,butafewvirtualfunctionsClassB:publicClassADefinesanextendedinterfaceforacertaintypeofsubclass;isabstractwithpurevirtualfunctionsClassC:publicClassBUsableclass,nomoresubclassing这就是交易,我将把ClassA和ClassC的对象一起放入容器中并进行迭代。为了执行此迭代,ClassA中存在一个非纯虚函数,

c++ - C++11 lambda 本身是否受制于 RAII 自动释放?

我想编写一个类方法,它可以选择接受lambda来自定义其行为。所以在使用这个类时,我想知道是否需要担心lambda本身超出范围?lambda不会引用任何外部变量,所以我不担心变量的范围,只担心lambda本身的范围,我会在类中存储对它的引用。我是否需要担心lambda本身是如何创建的/在哪里创建的? 最佳答案 在狭义情况之外,引用不会延长您所引用事物的生命周期。使用对生命周期已过期的事物的引用是未定义的行为。无状态lambda的未定义行为可能是“我什至不使用我的this指针”,所以你可能没问题。但是,如果您知道lambda将是无状态

c++ - 在父类中访问子类的功能

我一直在编写一个简单的棋盘游戏,以在实践中学习C++的概念。我已经实现了板:它由图block组成,每个图block都是从父类继承的子类。棋盘是一个具有图blockvector的类。瓷砖有几种。其中一些可以由玩家购买。有几种不同类型的可购买瓷砖以及不同的属性,所以我认为为可以购买的瓷砖制作基类TileOnSale并制作实际类型的子类很可爱,我在下面的代码中提供了其中两个.现在我的问题是如何访问未在父类(TileOnSale)中定义的子成员函数?Board使用各种不同的图block进行初始化,因此我可以使用getTile(intlocation)函数从那里提取一个图block。但是,这会被